package com.es.designmode.decorator;

/**
 * 装饰模式
 * 为已有功能动态添加更多功能
 *
 * @author Will
 */
public class ClientSide {

    public static void main(String[] args) {

        // 个人理解，就是在方法中追上一层的实现

        ConcreteComponent c = new ConcreteComponent();
        ConcreteDecoratorA a = new ConcreteDecoratorA();
        ConcreteDecoratorB b = new ConcreteDecoratorB();

        // 装饰顺序很重要
        // 装饰的是对象
        a.setComponent(c);
        b.setComponent(a);
        b.operation();

    }
}
